﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;

namespace twilters
{
    /**
     * Main interface for twitterClient
     * 
     * All public methods are described here for the TwitterClient
     * 
     */
    public interface TwitterClient
    {
        void loginAndInitialize(String username, String password);

        void logout();

        bool isLogged();

        List<Tweet> findLatestTweets(TweetType type);

        void postNewTweet(String message);

        void postNewTweet(String tweetMessage, String inReplyToID);

        void removeTweet(String tweetId);

        void sendDirectMessage(String userID, String text);

        void Close();

        String CurrentUserName();
    }

    public enum TweetType
    {
        Friends, Public, Mentions
    }

    class TwitterClientException : Exception
    {
        public TwitterClientException(String message)
            : base(message)
        {
        }

        public TwitterClientException(String message, Exception cause)
            : base(message, cause)
        {
        }
    }
}
